/**
 * 产品分类相关的API接口封装
 * 提供产品分类数据的增删改查功能
 */

// 导入请求工具函数
import request from "@/utils/request"

/**
 * 获取产品分类列表（支持分页和筛选）
 * @param {Object} params - 请求参数
 * @param {number} params.page - 页码，默认为1
 * @param {number} params.pageSize - 每页条数，默认为10
 * @param {string} params.category_name - 分类名称筛选条件（可选）
 * @returns {Promise} 返回包含产品分类列表和分页信息的Promise
 */
export function getProductCategoryList(params = {}) {
  // 设置默认分页参数
  const defaultParams = {
    page: 1,
    pageSize: 10,
    ...params
  }

  return request({
    url: "/productCategories/list",
    method: "get",
    params: defaultParams
  });
}

/**
 * 获取产品分类详情
 * @param {string|number} id - 产品分类ID
 * @returns {Promise} 返回包含产品分类详情信息的Promise
 */
export function getProductCategoryById(id) {
  return request({
    url: `/productCategories/${id}`,
    method: "get"
  });
}

/**
 * 创建产品分类
 * @param {Object} data - 产品分类数据
 * @param {string} data.category_name - 分类名称
 * @param {string} data.description - 分类描述
 * @returns {Promise} 返回创建结果的Promise
 */
export function createProductCategory(data) {
  return request({
    url: "/productCategories/add",
    method: "post",
    data
  });
}

/**
 * 更新产品分类
 * @param {string|number} id - 产品分类ID
 * @param {Object} data - 产品分类数据
 * @param {string} data.category_name - 分类名称
 * @param {string} data.description - 分类描述
 * @returns {Promise} 返回更新结果的Promise
 */
export function updateProductCategory(id, data) {
  return request({
    url: `/productCategories/update`,
    method: "put",
    data: {
      id,
      ...data
    }
  });
}

/**
 * 删除产品分类
 * @param {string|number} id - 产品分类ID
 * @returns {Promise} 返回删除结果的Promise
 */
export function deleteProductCategory(id) {
  return request({
    url: `/productCategories/${id}`,
    method: "delete"
  });
}
